//定义公共的方法
/*
* params arr 需要参数验证的数组
* params $this 当前的实例
*/
var requiredFun = function (arr, $this) {
  for (let i = 0, len = arr.length; i < len; i++) {
    if (parseInt($this[arr[i][0]]) !== 0 && !$this[arr[i][0]]) {
      return { state: false, msg: arr[i][1] };
    }
  }
  return { state: true };
}

/*
* params phoneNum 电话号码
*/
var regularPhone = function (phoneNum) {
  let regular = /^1(3|4|5|7|8)\d{9}$/;
  let res = regular.test(phoneNum);
  return res
}

/*
* @parameter arg1：被乘数（接受小数和整数）
* @parameter arg2：乘数（接受小数和整数）
* @parameter fix: 乘积保留几位（接受正负整数以及0）
*/
function accMul(arg1, arg2, fix) {
  if (!parseInt(fix) == fix) {
    return;
  }
  var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
  try { m += s1.split(".")[1].length } catch (e) { }
  try { m += s2.split(".")[1].length } catch (e) { }
  if (m > fix) {
    return (Math.round(Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m - fix)) / Math.pow(10, fix));
  } else if (m <= fix) {
    return (Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)).toFixed(fix);
  } else {
    return (arg1 * arg2).toFixed(fix);
  }
}

module.exports = {
  requiredFun: requiredFun,
  regularPhone: regularPhone,
  accMul: accMul
}